xl: Default guest mode changed from PV to PVH with PV shim
authorIan Jackson <ian.jackson@eu.citrix.com>
Fri, 5 Jan 2018 16:13:31 +0000 (16:13 +0000)
committerWei Liu <wei.liu2@citrix.com>
Tue, 16 Jan 2018 18:34:05 +0000 (18:34 +0000)
If the config file specifies a type (or builder), it overrides this
default.  But if it doesn't, you now get a PV-in-PVH guest.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
tools/xl/xl_parse.c

index fdfe693de16a7534e013376777cef369d6ceaa41..2a53ac001544b303e6c6dd347469b6aa009c0c80 100644 (file)
@@ -939,8 +939,12 @@ void parse_config_data(const char *config_source,
         c_info->type = builder_type;
     }
 
-    if (c_info->type == LIBXL_DOMAIN_TYPE_INVALID)
-        c_info->type = LIBXL_DOMAIN_TYPE_PV;
+    static bool pvshim_default_enable = 0;
+
+    if (c_info->type == LIBXL_DOMAIN_TYPE_INVALID) {
+        c_info->type = LIBXL_DOMAIN_TYPE_PVH;
+        pvshim_default_enable = 1;
+    }
 
     xlu_cfg_get_defbool(config, "hap", &c_info->hap, 0);
 
@@ -966,7 +970,10 @@ void parse_config_data(const char *config_source,
     libxl_domain_build_info_init_type(b_info, c_info->type);
 
     if (b_info->type == LIBXL_DOMAIN_TYPE_PVH) {
-        xlu_cfg_get_defbool(config, "pvshim", &b_info->u.pvh.pvshim, 0);
+        if (xlu_cfg_get_defbool(config, "pvshim", &b_info->u.pvh.pvshim, 0)
+            && pvshim_default_enable)
+            libxl_defbool_set(&b_info->u.pvh.pvshim, 1);
+
         if (!xlu_cfg_get_string(config, "pvshim_path", &buf, 0))
             xlu_cfg_replace_string(config, "pvshim_path",
                                    &b_info->u.pvh.pvshim_path, 0);